import Vue from "vue";
import "./plugins/axios";
import Router from "vue-router";
import App from "./App.vue";
import routerConfig from "./public/router"; // 引入路由配置
import store from "./public/store/store"; // 引入vuex静态管理
import "./plugins/element.js";
// 共公共样式引入
import "./public/public.css";
// 公共组件方法
import Api from "./components/common/api.vue"; // 引入api模板
import msgBox from "./public/msgBox.js"; // 引入公共提示信息窗
import CommonRule from "./public/CommonRule.js"; // 引入验证信息
import TableCommon from "./components/common/tableCommom.vue"; // 引入公共表格
import Button from "./components/common/button.vue"; // 引入按钮
import SearchPage from "./components/common-search/SearchPage.vue"; // 引入搜索
import filter from "./public/filter.js"; // 引入过滤器
import tools from "./public/tool.js"; // 引入工具方法
// 引入公共指令
import VdialogDrag from "./public/directives/dialogDrag.js"; // v-dialogDrag: 弹窗拖拽属性
import VcanvasDrag from "./public/directives/canvasDrag.js"; // v-canvasDrag: 弹窗拖拽属性

// Vue全局配置
Vue.config.productionTip = false; // 设置为 false 以阻止 vue 在启动时生成生产提示。

// 全局注册插件
Vue.use(Router);

// 注册全局组件
Vue.component("api", Api);
Vue.component("tableCommon", TableCommon);
Vue.component("bt", Button);
Vue.component("SearchPage", SearchPage);

// 全局实例属性
Vue.prototype.$layerNotice = msgBox.layerNotice; // 提示弹框
Vue.prototype.$showErrorMessage = msgBox.showErrorMessage; // 顶部弹出（红色）
Vue.prototype.$showSuccessMessage = msgBox.showSuccessMessage; // 顶部弹出（绿色）
Vue.prototype.$showSimpleMessage = msgBox.showSimpleMessage; // 顶部弹出
Vue.prototype.$loading = msgBox.loading; // loading页面
Vue.prototype.$dismiss = msgBox.dismiss;
Vue.prototype.$CommonRule = CommonRule; // 验证合集
Vue.prototype.$filter = filter; // 转化方法合集(过滤器)
Vue.prototype.$tools = tools; // 工具方法合集

// 全局注册指令
Vue.directive("dialogDrag", VdialogDrag);
Vue.directive("canvasDrag", VcanvasDrag);

let env = process.env.NODE_ENV;
console.log(env);

// 全局router
const router = new Router({
    mode: "history",
    routes: routerConfig
});

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount("#app");
